﻿# -*- coding: utf-8 -*-

""" Классы для построения модулей анализатора  """

import urllib
import re

class PriceItem(object):
    """ Элемент прайса """
    
    def __init__(self):
        self.number = 0
        self.category = ""
        self.name = ""
        self.price = 0
        self.description = ""
        self.details_url = ""

        
class PriceCategory(object):
    """ Категория прайс-листа """

    def __init__(self):
        self.title = ""
        self.id = 0
        self.products = []
        
        
class PriceList(object):
    """ Прайс-лист """
    
    def __init__(self):
        self.prefix = ""
        self.categories = {}
        self.list = []
        
    def get_category(self,category):
        """ Виртуальная функция загрузки элементов категории из прайса"""
        return []
        
    def get_page(self,page,encoding):
        """ Получение исходного текста страницы прайса """
        raw = urllib.urlopen(page).read()
        raw = bytes(raw).decode(encoding)
        return raw
        
    def get_list(self):
        """ Запуск формирования списка элементов """
        for k in self.categories.keys():
            self.list[k] = self.get_category(k)
        
    def find(self,item_name):
        """ Поиск элемента """        
        items = []
        for k in self.categories.keys():
            for j in self.list[k]:
                r_list = item_name.split(" ")
                i = 0
                while (i < len(r_list)) and (not re.search(i,j.description)):
                    i = i + 1
                if i < len(r_list):
                    items.append(j)
        return items